/**
 * Functions for clearing and replacing default text in <input> elements.
 */

addEvent(window, 'load', init, false);

function init()
{
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++)
    {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/))
        {  
            // Add event handlers         
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);
            
            // Save the current value
            if (theInput.value != '')
            {
                theInput.defaultText = theInput.value;
            }
        }
    }
}

function clearDefaultText(e)
{
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target)
    {
    	return;
    }
    
    if (target.value == target.defaultText)
    {
        target.value = '';
    }
}

function replaceDefaultText(e)
{
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target)
    {
    	return;
    }
    
    if (target.value == '' && target.defaultText)
    {
        target.value = target.defaultText;
    }
}

function addEvent(element, eventType, lamdaFunction, useCapture)
{
    if (element.addEventListener)
    {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    }
    else if (element.attachEvent)
    {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    }
    else
    {
        return false;
    }
}

function clearUnchangedText()
{
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++)
    {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/))
        {            
            // If the text hasn't changed, clear it
            if (theInput.value == theInput.defaultText )
            {
                 theInput.value = '';
            }
        }
    }
}